/// @tags:
#include <cstdio>
#include <cstring>
#include <iostream>

using namespace std;

namespace BlueQuantum {

typedef long long ll;

int const N = 5e2 + 5, mod = 1e8 + 7;

int n, t;

struct Matrix {
  int a[N][N];
  Matrix() { memset(a, 0, sizeof(a)); }

  inline Matrix operator*(Matrix const &rhs) const {
    Matrix res;
    for (int i = 0; i < n; ++i)
      for (int j = 0; j < n; ++j)
        for (int k = 0; k < n; ++k)
          if ((res.a[i][j] += (ll)a[i][k] * rhs.a[k][j] % mod) >= mod) res.a[i][j] -= mod;
    return res;
  }

  inline Matrix operator^(int exp) {
    Matrix res;
    for (int i = 0; i < n; ++i) res.a[i][i] = 1;
    while (exp) {
      if (exp & 1) res = res * *this;
      *this = *this * *this;
      exp >>= 1;
    }
    return res;
  }
} A, T;

inline ll qpow(ll base, int exp) {
  ll res = 1;
  while (exp) {
    if (exp & 1) res = res * base % mod;
    base = base * base % mod;
    exp >>= 1;
  }
  return res;
}

inline int main() {
  cin >> n >> A.a[0][0] >> t;
  for (int i = 0; i < n; ++i) {
    int tmp = qpow(n - i, mod - 2);
    for (int j = i; j < n; ++j) T.a[i][j] = tmp;
  }
  Matrix ans = A * (T ^ t);
  for (int i = 0; i < n; ++i) cout << ans.a[0][i] << ' ';
  return 0;
}

}  // namespace BlueQuantum

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen("食欲之秋.in", "r", stdin);
  freopen("食欲之秋.out", "w", stdout);
#endif
#endif

  ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  return BlueQuantum::main();
}
